<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>数组其他方法</title>
    <script>
        /* 数组其他方法 */
        /* 
        concat()
        可以连接两个或者多个数组并返回
        该方法不会对原数组产生影响
        还可以传递元素
        join()
        该方法可以将数组转换成字符串类型，元素中间用,隔开
        该方法不会对原数组产生影响
        还可使用该方法指定一个字符串作为参数，这个参数将会作为数组中元素的连接符
        如果不指定连接符，则默认,作为连接符

        reverse()
        该方法用来反转数组
        该方法会直接修改原数组（顺序改变）

        sort()
        对数组中的元素进行排序
        该方法会修改原数组（顺序改变），默认会按照Unicode编码进行排序
        对于纯数字的数组，使用sort()排序，也会使用Unicode编码进行排序，在排序时也会出错
        可以自己指定排序的规则
            可以再sort()中添加一个回调函数，来指定排序规则
                回调函数中需要定义两个形参
                浏览器将会分别使用数组中的元素作为实参去调用回调函数
                使用那个元素调用不确定，但a肯定再b的前面
                浏览器会根据回调函数的返回值来决定元素的顺序
                    如果返回一个大于0的值，则元素会交换位置
                    如果返回一个小于0的值，则元素位置不变
                    如果返回一个等于0的值，则认为元素相等，元素也不交换位置

        */
        //创建一个数组
        var arr = ["孙悟空", "沙和尚", "猪八戒", "唐僧"];
        var arr1 = ["白骨精", "玉兔精", "蜘蛛精"];
        var arr2 = ["二郎神"];
        var arr3 = ["b", "d", "a", "c", "e"];
        var arr4 = [1, 4, 2, 6, 8, 11, 34, 22, 13];
        arr4.sort(function(a, b) {
            /* console.log(a);
            console.log(b); */
            /* if (a > b) {
                return 1;
            } else if (a < b) {
                return -1;
            } else {
                return 0;
            } */
            //升序排序简便方法
            return a - b;
        })

        var result = arr.concat(arr1, arr2, "hello", "world");
        console.log(result);
        console.log(arr.join("!"));
        console.log(arr.reverse(arr));
        console.log(arr3.sort());
        console.log(arr4);
    </script>
</head>

<body>

</body>

</html>